home *** CD-ROM | disk | FTP | other *** search
- (*
- ** gestruct.inc
- **
- ** System data files definitions for GEcho 1.00
- **
- ** Copyright (C) 1992 Gerard J. van der Land. All rights reserved.
- **
- ** All information in this document is subject to change at any time
- ** without prior notice.
- **
- ** Last revision: 12-Oct-92
- **
- ** Strings are NUL padded and NUL terminated arrays of char type.
- ** Path names are back slash ('\') terminated.
- *)
-
- const
- GE_THISREV = $0002; (* System file revision level *)
- AKAS = 11; (* Main + AKA's *)
- UPLINKS = 10; (* AreaMgr uplinks *)
- USERS = 10; (* User names *)
- MAXAREAS = 1024; (* Area records *)
- MAXSYSTEMS = 350; (* Systems per area *)
- MAXNODES = 512; (* Node records *)
-
- (* --- Datatypes *)
-
- type
- dword = longint; (* Turbo Pascal doesn't support unsigned longint's *)
- Arr9 = array[1..09] of char;
- Arr13 = array[1..13] of char;
- Arr17 = array[1..17] of char;
- Arr20 = array[1..20] of char;
- Arr21 = array[1..21] of char;
- Arr30 = array[1..30] of char;
- Arr31 = array[1..31] of char;
- Arr36 = array[1..36] of char;
- Arr51 = array[1..51] of char;
- Arr53 = array[1..53] of char;
- Arr61 = array[1..61] of char;
- Arr65 = array[1..65] of char;
-
- (* --- Address type *)
-
- type
- ADDRESS = record
- zone : word;
- net : word;
- node : word;
- point : word;
- end;
-
- (* --- Log levels *)
-
- const
- LOG_INBOUND = $0001;
- LOG_OUTBOUND = $0002;
- LOG_PACKETS = $0004;
- LOG_UNEXPECT = $0008;
- LOG_AREAMGR = $0010;
- LOG_EXTPKTINFO = $0040;
- LOG_NETEXPORT = $0100;
- LOG_NETIMPORT = $0200;
- LOG_NETPACK = $0400;
- LOG_NETMOVED = $0800;
- LOG_STATISTICS = $2000;
- LOG_MBUTIL = $4000;
- LOG_DEBUG = $8000;
-
- (* --- Log styles *)
-
- const
- LOG_FD = 0;
- LOG_BINK = 1;
- LOG_QUICK = 2;
- LOG_DBRIDGE = 3;
-
- (* --- Setup option bits *)
-
- const
- NOKILLNULL = $0001; (* Don't kill null netmail messages while tossing *)
- RESCANOK = $0002; (* Allow rescan *)
- KEEPREQS = $0004; (* Keep AreaMgr requests *)
- NONODEADD = $0008; (* Don't automatically add NodeMgr records *)
- NOUSERSBBS = $0010; (* Don't let Import check USERS.BBS *)
- USEBUFFERS = $0020; (* Use outbound buffers *)
- KEEPNET = $0040; (* Don't use Kill/Sent on exported netmail *)
- KEEPMGR = $0080; (* Don't use Kill/Sent on MGR receipts *)
- KILLDUPES = $0200; (* Kill duplicate messages *)
- ARCMAIL = $0400; (* Use ARCmail 0.60 naming for out-of-zone mail *)
- NOCRSTRIP = $0800; (* Don't strip Soft-CRs *)
- NOPIDSTRIP = $1000; (* Don't strip PIDs *)
- NOAUTODISC = $2000; (* Don't automatically disconnect empty PT areas *)
- NOCHECKEND = $4000; (* Don't check for valid end of archives *)
- SETPVT = $8000; (* Set Pvt on imported netmail messages *)
-
- (* --- Extra option bits *)
-
- const
- NOCHKDEST = $0001; (* Don't check packet destination *)
- AREASBBS = $0002; (* Use AREAS.BBS for MBUTIL *)
- PASSIVEOK = $0004; (* Allow %PASSIVE *)
-
- (* --- Compression types *)
-
- const
- PR_ARC = 0; (* For compressed mail files created by ARC or PKPAK *)
- PR_ARJ = 1; (* For compressed mail files created by ARJ *)
- PR_LZH = 2; (* For compressed mail files created by LHA *)
- PR_PAK = 3; (* For compressed mail files created by PAK *)
- PR_ZIP = 4; (* For compressed mail files created by PKZIP *)
- PR_ZOO = 5; (* For compressed mail files created by ZOO *)
- PR_SQZ = 6; (* For compressed mail files created by SQZ *)
-
- (* --- Locking method *)
-
- const
- LOCK_OFF = 0; (* Deny Write (Exclusive) *)
- LOCK_RA101 = 1; (* RemoteAccess 1.01 (SHARE) *)
- LOCK_RA110 = 2; (* RemoteAccess 1.10/1.11 (SHARE) *)
-
- (* --- Semaphore mode *)
-
- const
- SEMPAHORE_OFF = 0; (* Don't use semaphores *)
- SEMAPHORE_FD = 1; (* FrontDoor 2.xx *)
- SEMAPHORE_IM = 2; (* InterMail 2.xx *)
- SEMAPHORE_DB = 3; (* D'Bridge 1.3x *)
- SEMAPHORE_BT = 4; (* BinkleyTerm 2.5x *)
-
- (* --- Mailer type *)
-
- const
- MAILER_FD = 0; (* FrontDoor *)
- MAILER_DB = 1; (* D'Bridge *)
- MAILER_BT = 2; (* BinkleyTerm *)
-
- (* --- Uplink option bits *)
-
- const
- UPLINK_DIRECT = $01;
- UPLINK_ALWAYS = $02;
- UPLINK_ADDPLUS = $04;
-
- type
- UPLINK = record
- address : ADDRESS; (* Uplink address *)
- areafix : Arr9; (* AreaFix program *)
- password : Arr17; (* AreaFix password *)
- filename : Arr13; (* "Forward List" filename *)
- unused : array[1..6] of byte;
- options : byte; (* See --- Uplink options bits *)
- filetype : byte; (* 0 = Random, 1 = "<areaname> <description>" *)
- groups : dword; (* Nodes must have one of these groups *)
- origin : byte; (* Origin AKA *)
- end;
-
- type
- AKAMATCH = record
- zone : word;
- net : word;
- aka : byte;
- end;
-
- (* --- SETUP.GE structure *)
-
- type
- SETUP_GE = record
- sysrev : word; (* Must contain GE_THISREV above *)
- options : word; (* Options bits, see --- Setup option bits *)
- autorenum : word; (* Auto renumber value *)
- maxpktsize : word; (* Maximum packet size, 0 = unlimited *)
- logstyle : byte; (* See --- Log styles *)
- oldnetmailboard : byte; (* Netmail board, must be zero now *)
- badboard : byte; (* Where bad echomail is stored (0 = path) *)
- dupboard : byte; (* Where duplicates are stored (0 = path) *)
- recoveryboard : byte; (* Recovery board (1-200, 0 = delete) *)
- filebuffer : byte; (* Size (in KB) of MBU file I/O buffer *)
- days : byte; (* Days to keep old mail around *)
- swapping : byte; (* Swapping method *)
- compr_default : byte; (* Default compresion type *)
- color : array[0..14] of byte; (* See --- Personal Mail colors *)
- aka : array[1..AKAS] of ADDRESS; (* Main address and AKA's *)
- pointnet : array[1..AKAS] of word; (* Pointnets for all addresses *)
- gekey : dword; (* GEcho registration key *)
- mbukey : dword; (* MBUTIL registration key *)
- geregto : Arr51; (* Text used to generate the GEcho key *)
- mburegto : Arr51; (* Text used to generate the MBUTIL key *)
- username : array[1..USERS] of Arr36; (* User names *)
- mbpath : Arr53; (* Hudson message base path *)
- mailpath : Arr53; (* Netmail path *)
- inbound_path : Arr53; (* Where incoming compressed mail is stored *)
- outbound_path : Arr53; (* Where outgoing compressed mail is stored *)
- editor : Arr65; (* External full screen editor used by PM *)
- nodepath : Arr53; (* Nodelist directory used by PMNC and PM *)
- areasfile : Arr65; (* AREAS.BBS style file *)
- logfile : Arr65; (* GEcho/MBUTIL log file *)
- mgrlogfile : Arr65; (* AreaMgr log file *)
- swap_path : Arr53; (* Swap path *)
- tear_line : Arr31; (* Tearline to be placed by MBUTIL Export *)
- originline : array[1..20] of Arr61; (* Origin lines *)
- compr_prog : array[1..10] of Arr13; (* Compression program filenames *)
- compr_switches : array[1..10] of Arr20; (* Compression program switches *)
- decompr_prog : array[1..10] of Arr13; (* Decompression program filenames *)
- decompr_switches : array[1..10] of Arr20; (* Decompression program switches *)
- groups : array[1..26] of Arr21; (* Descriptions of area groups *)
- lockmode : byte; (* See --- Locking method *)
- secure_path : Arr53; (* From which secure PKTs are tossed *)
- rcvdmailpath : Arr53; (* Directory to which Rcvd netmail is moved *)
- sentmailpath : Arr53; (* Directory to which Sent netmail is moved *)
- semaphorepath : Arr53; (* Where FD rescan files are stored *)
- version_major : byte;
- version_minor : byte;
- semaphore_mode : byte; (* See --- Semaphore mode's *)
- badecho_path : Arr53; (* Where sec. violating and unknown mail is stored *)
- mailer_type : byte; (* See --- Mailer type *)
- loglevel : word; (* See --- Log level *)
- akamatch : array[1..20] of AKAMATCH; (* AKA matching table *)
- mbulogfile : Arr65; (* MBUTIL log file *)
- maxqqqs : word; (* Max. number of QQQ info stored in memory *)
- maxqqqopen : byte; (* Not used *)
- maxhandles : byte; (* Max. number of files used by GEcho *)
- maxarcsize : word; (* Max. archive size, 0 = unlimited *)
- unused : array[1..2] of byte; (* Unused space *)
- extraoptions : word; (* See --- Extra option bits *)
- firstboard : byte; (* First available new board (0 = *.MSG) *)
- reserved1 : word; (* Reserved *)
- copy_persmail : word; (* Copy personal mail for user (bits 0-9) *)
- persmailboard : array[1..USERS] of byte; (* Personal mail board (0 = path) *)
- public_groups : dword; (* Public groups (bits 0-25) *)
- dupentries : word; (* Number of duplicate entries in ECHODUPE.GE *)
- rcvdboard : byte; (* Where Rcvd netmail is moved to (0 = path) *)
- sentboard : byte; (* Where Sent netmail is moved to (0 = path) *)
- akaboard : array[1..AKAS] of byte; (* Netmail boards for AKA's *)
- userboard : array[1..USERS] of byte; (* Netmail boards for system users, 255 = use AKA board *)
- reserved2 : byte; (* Reserved *)
- uplink : array[1..UPLINKS] of UPLINK; (* Uplink manager information *)
- persmail_path : Arr53; (* Path to store copies of personal echomail *)
- outpkts_path : Arr53; (* Where outbound packets are temp. stored *)
- compr_mem : array[1..10] of word; (* Memory needed for compression programs *)
- decompr_mem : array[1..10] of word; (* Memory needed for decompression programs *)
- pwdcrc : dword; (* CRC-32 of access password, -1L = no password *)
- default_msgs : word; (* Maximum number of messages (Purge) *)
- default_days : word; (* Maximum age of non-Rcvd messages (Purge) *)
- gus_prog : Arr13; (* General Unpack Shell program filename *)
- gus_switches : Arr20; (* GUS switches *)
- gus_mem : word; (* Memory needed for GUS *)
- default_rcvd : word; (* Maximum age of Rcvd messages (Purge) *)
- end;
-
- (***************************************************************************)
-
- (* --- Area options bits *)
-
- const
- IMPORTSB = $0001; (* Import SEEN-BY lines to message base *)
- SECURITY = $0002; (* Only accept mail from systems in the exportlist *)
- PASSTHRU = $0004; (* Mail is not imported, only forwarded *)
- VISIBLE = $0008; (* Area is visible for anyone in AreaMgr's %LIST *)
- REMOVED = $0010; (* Area should be removed by GSETUP Pack *)
- NOUNLINK = $0020; (* Do not allow users to unlink this area *)
- TINYSB = $0040; (* Tiny SEEN-BYs without systems not in exportlist *)
- PVT = $0080; (* Private bits are preserved and are not stripped *)
- CHECKSB = $0100; (* Use SEEN-BYs for duplicate prevention *)
- NOSLEEP = $0200; (* Do not allow users to make this area passive *)
- SDM = $0400; (* Area is *.MSG style *)
- NOTIFIED = $4000; (* Sysop notified that area was disconnected *)
- UPLDISC = $8000; (* Disconnected from uplink (only for PT areas) *)
-
- (* --- Area type *)
-
- const
- ECHOMAIL = 0;
- NETMAIL = 1;
- LOCAL = 2;
- BADECHO = 3;
- PERSONAL = 4;
-
- (* --- AREAFILE.GE header *)
-
- type
- AREAFILE_HDR = record
- hdrsize : word; (* sizeof(AREAFILE_HDR) *)
- recsize : word; (* Size of an area file record, excluding exportlist *)
- systems : word; (* Number of entries in the export list (1-MAXSYSTEMS) *)
- end;
-
- type
- AREAFILE_GE = record
- name : Arr51; (* AREA tag, must be uppercase, no spaces *)
- comment : Arr61; (* Description of the topics discussed in area *)
- path : Arr51; (* Location where *.MSG files are stored *)
- originline : Arr61; (* Custom origin line, used if origlinenr = 0 *)
- areanumber : word; (* Area number 1-MAXAREAS, 1-200 = Hudson *)
- group : char; (* Group (A-Z) *)
- options : word; (* See --- Area options bits *)
- originlinenr : byte; (* Origin line (1-20, 0 = custom) *)
- pkt_origin : byte; (* Address for the packet/Origin line (0-10) *)
- seenbys : word; (* Addresses (bits 0-10) to add to the SEEN-BY *)
- reserved : word;
- msgs : word; (* Maximum number of messages (MBUTIL Purge) *)
- days : word; (* Maximum age of non-Rcvd messages (MBUTIL Purge) *)
- rcvddays : word; (* Maximum age of Rcvd messages (MBUTIL Purge) *)
- areatype : byte; (* See --- Area type *)
- end;
-
- (* --- Export entry status bits *)
-
- const
- EXPT_NOREAD = $01; (* Accept from but don't forward to this system *)
- EXPT_NOWRITE = $02; (* Don't accept from but do foward to this system *)
- EXPT_HOLD = $04; (* Temporary don't send this area to this system *)
- EXPT_NOUNLINK = $08; (* Don't allow system to disconnect *)
-
- (* --- Export list entry *)
-
- type
- EXPORTENTRY = record
- address : ADDRESS;
- status : byte;
- end;
-
- (* --- AREAFILE.GEX index entry *)
-
- type
- AREAFILE_GEX = record
- crc32 : longint; (* CRC-32 on areaname *)
- areanumber : word; (* Area number (1-MAXAREAS, 1-200 = Hudson) *)
- offset : longint; (* File offset of record in AREAFILE.GE *)
- end;
-
- (***************************************************************************)
-
- (* --- Status:
- $0000 = None
- $0002 = Crash
- $0200 = Hold
- $FFFF = Removed entry
- *)
-
- (* --- Node option bits *)
-
- const
- REMOTEMAINT = $0001;
- ALLOWRESCAN = $0002;
- FORWARDREQ = $0004;
- DIRECT = $0008;
- NONOTIFY = $0010;
-
- (* --- NODEFILE.GE header *)
-
- type
- NODEFILE_HDR = record
- hdrsize : word; (* sizeof(NODEFILE_HDR) *)
- recsize : word; (* sizeof(NODEFILE_GE) *)
- end;
-
- (* --- NODEFILE.GE record *)
-
- type
- NODEFILE_GE = record
- address : ADDRESS; (* Address of the system *)
- sysop : Arr36; (* Name of the sysop or point *)
- pktpwd : Arr9; (* Packet (session) password *)
- mgrpwd : Arr17; (* AreaMgr password *)
- groups : dword; (* AreaMgr groups (bits 0-25) *)
- options : word; (* See --- Node option bits *)
- comprtype : byte; (* Compression type (0 - 9, 10 = PKT) *)
- status : word; (* File attach status. See above *)
- route_to : ADDRESS; (* Address to route mail files to *)
- end;
-
- (* --- NODEFILE.GEX index entry *)
-
- type
- NODEFILE_GEX = record
- address : ADDRESS; (* Address of the system *)
- offset : longint; (* File offset of record in NODEFILE.GE *)
- end;
-
- (***************************************************************************)
-
- (* --- Routed node entry *)
-
- type
- ROUTE = record
- node : ADDRESS;
- status : byte;
- via : byte;
- end;
-
- (* --- PACKFILE.GE structure *)
-
- type
- PACKFILE_GE = record
- Via : array[1..60] of ADDRESS;
- Route : array[1..640] of ROUTE;
- end;
-
- (***************************************************************************)
-
- (* --- ECHODUPE.GE structure *)
-
- type
- ECHODUPE_GE = record
- pointer : word; (* Next offset *)
- entries : word; (* Number of entries in the database *)
- (* crc32_high : array[1..entries]; CRC-32's on headers, high portions *)
- (* crc32_low : array[1..entries]; CRC-32's on headers, low portions *)
- end;
-
- (***************************************************************************)
-
- (* --- FTSCPROD.GE record *)
-
- type
- FTSCPROD_GE = record
- cap : byte; (* Capability, 0 = Type 2.0, 1 = Type 2.1, 2 = Type 2+ *)
- name : Arr30; (* Name of product *)
- end;
-
- (***************************************************************************)
-
- (* --- Personal Mail colors (same as used by FrontDoor editor FM) *)
-
- const
- top_line = 0;
- status_line = 1;
- error = 2;
- text = 3;
- text_quotes = 4;
- text_reverse = 5;
- text_hardCRs = 6;
- header = 7;
- header_data = 8;
- header_data_highlight = 9;
- data_entry = 10;
- window_frame = 11;
- window_text = 12;
- window_select = 13;
- window_highlight = 14;
-
- (* end of file "gestruct.inc" *)
-